home *** CD-ROM | disk | FTP | other *** search
/ 64'er 1989 May / 64er_Magazin_89-05_1989_Markt__Technik_de.d64 / x-dir src < prev    next >
Text File  |  2022-10-26  |  4KB  |  502 lines

  1. org $c000
  2.  
  3. :open   = $ffc0
  4. :close  = $ffc3
  5. :chkin  = $ffc6
  6. :chkout = $ffc9
  7. :getin  = $ffcf
  8. :chrstr = $ffd2
  9. :clrchn = $ffcc
  10. :print  = $ab1e
  11. :number = $bdcd
  12.  
  13. jmp start
  14.  
  15. :type
  16. b "del seq prg usr rel "
  17. b "??? ??? ??? ??? ??? "
  18. :tmsg b 13,5,"message: ",159,0
  19. :tname b 5,"diskname:",159,0
  20. :tid b 5,"  id:",159,0
  21.  
  22. :unclosed b 28+128,"* not close",0
  23. :protect  b 28+128,"* protected",0
  24. :trse     b 159,"t/s:",0
  25. :sise     b "  side-s:",0
  26. :rlen     b "  rlaenge:",0
  27. :blocks   b "... ",0
  28. :startadr b "  adr:",0
  29. :newz     b 13,"    ",0
  30. :u1 b "u1 2 0 ",0
  31. :bp b "b-p 2 ",0
  32. :bp2 b "b-p 2 2",13,0
  33. :freebl b 13,5,"free blocks on disk :",0
  34. :typebuf b 0
  35. :secbuf b 0
  36. :sector b 0
  37. :entry  b 0
  38. :nsect  b 0
  39. :llo b 0
  40. :lhi b 0
  41.  
  42. :name2 b "#"
  43. :name1 b "i"
  44.  
  45. :start
  46. jsr clrchn
  47.  
  48. lda #1
  49. jsr close
  50. lda #2
  51. jsr close
  52.  
  53. lda #1
  54. ldx #<name1
  55. ldy #>name1
  56. jsr $ffbd
  57. lda #1
  58. ldx #8
  59. ldy #15
  60. jsr $ffba
  61. jsr open
  62.  
  63. lda #1
  64. ldx #<name2
  65. ldy #>name2
  66. jsr $ffbd
  67. lda #2
  68. ldx #8
  69. ldy #2
  70. jsr $ffba
  71. jsr open
  72.  
  73. lda #1
  74. sta sector
  75.  
  76. :label1
  77. lda sector
  78. jsr readsector
  79. lda sector
  80. sta secbuf
  81. lda #0
  82. sta entry
  83.  
  84. lda #0
  85. jsr setpointer
  86. jsr getin
  87. jsr getin
  88. sta nsect
  89.  
  90. :label2
  91.  
  92. lda #5
  93. jsr setpointer
  94. jsr getin
  95. cmp #0
  96. bne label2aa
  97. jmp label5
  98.  
  99.  
  100. :label2aa
  101. lda #30
  102. jsr setpointer
  103. jsr getin
  104. sta llo
  105. jsr getin
  106. sta lhi
  107.  
  108. lda #7
  109. sta 646
  110. ldx llo
  111. ldy lhi
  112. jsr hexout
  113.  
  114. lda #5
  115. jsr setpointer
  116.  
  117. lda #15
  118. sta sector
  119.  
  120. lda #5
  121. jsr $ffd2
  122. lda #'"
  123. jsr $ffd2
  124.  
  125. :label3
  126. jsr getin
  127. cmp #160
  128. beq label4
  129. jsr $ffd2
  130. dec sector
  131. bpl label3
  132.  
  133. :label4
  134. lda #'"
  135. jsr $ffd2
  136.  
  137. :label3d
  138. lda sector
  139. beq realend
  140. bmi realend
  141. jsr getin
  142. jsr $ffd2
  143. dec sector
  144. jmp label3d
  145.  
  146.  
  147. :realend
  148. lda #2
  149. sta 646
  150. sec
  151. jsr $fff0
  152. ldy #24
  153. clc
  154. jsr $fff0
  155.  
  156. lda #2
  157. jsr setpointer
  158. jsr getin
  159. pha
  160. and #%00000111
  161. sta typebuf
  162. asl
  163. asl
  164. tax
  165. ldy #3
  166. sty sector
  167. :labeu1
  168. lda type,x
  169. stx 2
  170. jsr $ffd2
  171. ldx 2
  172. inx
  173. dec sector
  174. bpl labeu1
  175. pla
  176. pha
  177. and #128
  178. cmp #128
  179. beq labeu2
  180. lda #<unclosed
  181. ldy #>unclosed
  182. jsr print
  183. jmp labeu3
  184. :labeu2
  185. pla
  186. pha
  187. and #64
  188. cmp #64
  189. bne labeu3
  190. lda #<protect
  191. ldy #>protect
  192. jsr print
  193. :labeu3
  194. pla
  195.  
  196. lda #<newz
  197. ldy #>newz
  198. jsr print
  199.  
  200. lda #3
  201. jsr setpointer
  202. jsr getin
  203. sta llo
  204. jsr getin
  205. sta lhi
  206.  
  207. lda #<trse
  208. ldy #>trse
  209. jsr print
  210. lda llo
  211. jsr hot2
  212. lda #'/
  213. jsr $ffd2
  214. lda lhi
  215. jsr hot2
  216. lda #2
  217.  
  218. lda typebuf
  219. cmp #2
  220. bne noprog
  221. lda #<startadr
  222. ldy #>startadr
  223. jsr print
  224.  
  225. jsr clrchn
  226. ldx #1
  227. jsr chkout
  228. lda #<u1
  229. ldy #>u1
  230. jsr print
  231. ldx llo
  232. lda #0
  233. jsr number
  234. lda #32
  235. jsr $ffd2
  236. ldx lhi
  237. lda #0
  238. jsr number
  239. lda #13
  240. jsr $ffd2
  241. jsr clrchn
  242. ldx #1
  243. jsr chkout
  244.  
  245. lda #<bp2
  246. ldy #>bp2
  247. jsr print
  248. jsr clrchn
  249.  
  250. ldx #2
  251. jsr chkin
  252. jsr getin
  253. sta llo
  254. jsr getin
  255. sta lhi
  256.  
  257. ldx llo
  258. ldy lhi
  259. jsr hexout
  260.  
  261. lda secbuf
  262. sta sector
  263. jsr readsector
  264. jmp norel
  265.  
  266. :noprog
  267. cmp #4
  268. bne norel
  269.  
  270. lda #<sise
  271. ldy #>sise
  272. jsr print
  273. lda #21
  274. jsr setpointer
  275. jsr getin
  276. sta llo
  277. jsr getin
  278. sta lhi
  279. jsr getin
  280. sta sector
  281. lda llo
  282. jsr hot2
  283. lda #'/
  284. jsr $ffd2
  285. lda lhi
  286. jsr hot2
  287.  
  288. lda #<rlen
  289. ldy #>rlen
  290. jsr print
  291. lda sector
  292. jsr hot2
  293.  
  294. :norel
  295.  
  296. lda #13
  297. jsr $ffd2
  298. inc entry
  299. lda entry
  300. cmp #8
  301. beq label6
  302. jmp label2
  303. :label6
  304.  
  305. lda nsect
  306. sta sector
  307. cmp #255
  308. beq label5
  309. jmp label1
  310.  
  311. :label5
  312.  
  313. jsr readfree
  314.  
  315. jsr clrchn
  316. lda #2
  317. jsr close
  318. lda #1
  319. jsr close
  320. rts
  321.  
  322. :readsector
  323. sta 2
  324. jsr clrchn
  325. ldx #1
  326. jsr chkout
  327.  
  328. lda #<u1
  329. ldy #>u1
  330. jsr print
  331.  
  332. ldx #18
  333. lda #0
  334. jsr number
  335.  
  336. lda #32
  337. jsr $ffd2
  338.  
  339. ldx 2
  340. lda #0
  341. jsr number
  342. lda #13
  343. jsr $ffd2
  344.  
  345. jsr clrchn
  346. rts
  347.  
  348. :setpointer
  349.  
  350. sta 2
  351. jsr clrchn
  352. ldx #1
  353. jsr chkout
  354. lda #<bp
  355. ldy #>bp
  356. jsr print
  357.  
  358. lda entry
  359. asl
  360. asl
  361. asl
  362. asl
  363. asl
  364. clc
  365. adc 2
  366. tax
  367. lda #0
  368. jsr number
  369. lda #13
  370. jsr $ffd2
  371.  
  372. jsr clrchn
  373. ldx #2
  374. jsr chkin
  375. rts
  376.  
  377. :hot s 2
  378.  
  379. :hexout
  380. stx hot
  381. sty hot+1
  382.  
  383. lda hot+1
  384. jsr hot2
  385. lda hot
  386. jsr hot2
  387. lda #32
  388. jmp $ffd2
  389.  
  390. :hot2
  391. pha
  392. lsr
  393. lsr
  394. lsr
  395. lsr
  396. jsr hot1
  397. pla
  398. and #15
  399. :hot1
  400. tax
  401. lda hottab,x
  402. jmp $ffd2
  403.  
  404. :hottab b"0123456789abcdef"
  405.  
  406. :readfree
  407. jsr clrchn
  408. lda #<freebl
  409. ldy #>freebl
  410. jsr print
  411.  
  412. lda #0
  413. jsr readsector
  414. lda #33
  415. sta sector
  416.  
  417. lda #0
  418. sta hot
  419. sta hot+1
  420. sta entry
  421.  
  422. lda #4
  423. jsr setpointer
  424. :bfrech
  425. jsr getin
  426. sta 2
  427.  
  428. jsr getin
  429. jsr getin
  430. jsr getin
  431.  
  432. lda hot
  433. clc
  434. adc 2
  435. sta hot
  436. lda hot+1
  437. adc #0
  438. sta hot+1
  439.  
  440. dec sector
  441. bpl bfrech
  442.  
  443. ldx hot
  444. ldy hot+1
  445. jsr hexout
  446. lda #32
  447. jsr $ffd2
  448. lda #'(
  449. jsr $ffd2
  450. ldx hot
  451. lda hot+1
  452. jsr number
  453. lda #')
  454. jsr $ffd2
  455. lda #13
  456. jsr $ffd2
  457. lda #144
  458. jsr setpointer
  459. lda #<tname
  460. ldy #>tname
  461. jsr print
  462. lda #15
  463. sta sector
  464. :tnam1
  465. jsr getin
  466. jsr $ffd2
  467. dec sector
  468. bpl tnam1
  469. lda #<tid
  470. ldy #>tid
  471. jsr print
  472. lda #162
  473. jsr setpointer
  474. jsr getin
  475. jsr $ffd2
  476. jsr getin
  477. jsr $ffd2
  478. jsr getin
  479. jsr $ffd2
  480. jsr getin
  481. jsr $ffd2
  482. jsr getin
  483. jsr $ffd2
  484.  
  485. lda #<tmsg
  486. ldy #>tmsg
  487. jsr print
  488. lda #$a7
  489. sta sector
  490. jsr setpointer
  491. lda #1
  492. sta 212
  493. :tnam4
  494. jsr getin
  495. beq tnam5
  496. jsr $ffd2
  497. :tnam5
  498. inc sector
  499. bne tnam4
  500. lda #13
  501. jmp $ffd2
  502.